home *** CD-ROM | disk | FTP | other *** search
- #
- # Open up a pipe and then page the output.
- # I wrote this in a race with Archon (hop, 1997)
- #
-
- #
- # Usage:
- # $0 - name of the pipe
- # $1- - stuff to run
- #
- alias less_pipe
- {
- @ line = 0
-
- if ([$1])
- {
- ^on ^exec "$0 *" {
- @ lessline[$line] = [$1-]
- @ line++
- }
- ^on ^exec_error "$0 *" {
- echo *** Error on exec: $*
- }
- ^on ^exec_exit "$0 *" {
- on exec -"$0 *"
- on exec_error -"$0 *"
- on exec_exit -"$0 *"
- less_array lessline 0 $line
- }
- exec -name $*
- }
- }
-
- /*
- * $0 is the array name to use
- * $1 is the starting line
- * $2 is the final line
- */
- alias less_array
- {
- local line $1
- local cr 0
- local rows $winsize()
-
- while ((line < [$2]) && (cr < rows))
- {
- echo $($0[$line])
- assign -$0[$line]
- @ line++, cr++
- }
-
- if (cr >= rows)
- {
- @ aaa.array_name = [$0]
- @ aaa.next_line = line
- @ aaa.final_line = [$2]
-
- input_char "Enter q to quit, or anything else to continue "
- {
- if ([$0] != [q])
- {
- ^less_array $aaa.array_name $aaa.next_line $aaa.final_line
- }
- }
- }
- }
-
- #hop'97
-